package com.corpgovernment.travelstandard.entity.db;

import com.corpgovernment.common.annotation.OperateLogFieldDesc;
import com.corpgovernment.common.entity.db.BaseEntity;
import lombok.Data;
import org.apache.ibatis.type.Alias;

import javax.persistence.Column;
import javax.persistence.Table;
import java.util.Date;


/**
 * 机票差标表
 **/
@Data
@Alias("mbTravelstandFlight")
@Table(name = "mb_travelstand_flight")
public class MbTravelstandFlight extends BaseEntity {

    /**
     * 差标归属组织id
     **/
    @OperateLogFieldDesc("差标归属组织id")
    @Column(name = "org_id")
    private String orgId;

    /**
     * 差标名称
     **/
    @OperateLogFieldDesc("差标名称")
    @Column(name = "name")
    private String name;

    /**
     * 舱等/折扣管控开关（C表示舱等控制，D表示折扣控制，N表示不管控）
     **/
    @OperateLogFieldDesc("舱等/折扣管控开关（C表示舱等控制，D表示折扣控制，N表示不管控）")
    @Column(name = "class_discount_switch")
    private String classDiscountSwitch;

    /**
     * 可订舱等（经济舱Y、商务舱C、头等舱F，单选）
     **/
    @OperateLogFieldDesc("可订舱等（经济舱Y、商务舱C、头等舱F，单选）")
    @Column(name = "class_class")
    private String classClass;

    /**
     * 折扣控制舱等（经济舱Y、商务舱C、头等舱F，复选）
     **/
    @OperateLogFieldDesc("折扣控制舱等（经济舱Y、商务舱C、头等舱F，复选）")
    @Column(name = "discount_class")
    private String discountClass;

    /**
     * 折扣控制-折扣
     **/
    @OperateLogFieldDesc("折扣控制-折扣")
    @Column(name = "discount_num")
    private java.math.BigDecimal discountNum;

    /**
     * 折扣舱等超标管控方式（禁止预订F、选择原因C）
     **/
    @OperateLogFieldDesc("折扣舱等超标管控方式（禁止预订F、选择原因C）")
    @Column(name = "class_discount_control_type")
    private String classDiscountControlType;

    /**
     * 低价管控开关（E表示启用，N表示停用）
     **/
    @Column(name = "lowprice_switch")
    private String lowpriceSwitch;

    /**
     * 低价国内机票RC检测时间段
     **/
    @Column(name = "lowprice_time_option")
    private Integer lowpriceTimeOption;

    /**
     * 比价时间段-开始
     **/
    @Column(name = "lowprice_compare_time_start")
    private Date lowpriceCompareTimeStart;

    /**
     * 比价时间段-结束
     **/
    @Column(name = "lowprice_compare_time_end")
    private Date lowpriceCompareTimeEnd;

    /** 按机场筛选比价,T需要 F不需要 **/
    @Column(name = "airport_compare_price")
    private String airportComparePrice;

    /**
     * 低价超标管控方式（禁止预订F、选择原因C）
     **/
    @Column(name = "lowprice_control_type")
    private String lowpriceControlType;

    /**
     * 低价浮动类型 A-固定金额浮动 B-固定比例浮动
     **/
    @Column(name = "lowprice_float_type")
    private String lowpriceFloatType;

    /**
     * 低价浮动金额数
     **/
    @Column(name = "lowprice_float_amount")
    private Integer lowpriceFloatAmount;

    /**
     * 低价浮动比例数
     **/
    @Column(name = "lowprice_float_num")
    private Integer lowpriceFloatNum;

    /**
     * 低价管控中转是否参与比价（T是，F否）
     **/
    @Column(name = "lowprice_transfer_need_compare")
    private String lowpriceTransferNeedCompare;

    /**
     * 公里数管控开关（E表示启用，N表示停用）
     */
    @Column(name = "mileage_switch")
    private String mileageSwitch;

    /**
     * 国内机票最低可预订公里数
     */
    @Column(name = "mileage_min_mileage_number")
    private Integer mileageMinMileageNumber;

    /**
     * 公里数管控方式（禁止预订F、选择原因C、审批A）
     */
    @Column(name = "mileage_control_type")
    private String mileageControlType;

    /**
     * 提前预订开关（E表示启用，N表示停用）
     */
    @Column(name = "advancedbook_switch")
    private String advancedbookSwitch;

    /**
     * 提前预订天数
     */
    @Column(name = "advancedbook_advanced_day_num")
    private Integer advancedbookAdvancedDayNum;

    /**
     * 提前预订管控方式（禁止预订F、选择原因C、审批A）
     */
    @Column(name = "advancedbook_control_type")
    private String advancedbookControlType;

    /** 金额管控开关E-启用 N-停用 */
    @Column(name = "amount_control_switch")
    private String amountControlSwitch;

    /**  航班价格 */
    @Column(name = "amount_control_num")
    private Integer amountControlNum;

    /** 超标管控方式 金额管控方式（禁止预订F、选择原因C） */
    @Column(name = "amount_control_type")
    private String amountControlType;

    /**
     * 时间管控开关（禁止预订F、选择原因C、审批A）
     */
    @Column(name = "time_switch")
    private String timeSwitch;

    /**
     * 时间管控方式
     */
    @Column(name = "time_choose_type")
    private String timeChooseType;

    /**
     * 时间超标管控方式（禁止预订F、选择原因C、审批A）
     */
    @Column(name = "time_control_type")
    private String timeControlType;

    /**
     * 产线开关（E为启用，N为停用）
     * 停用则禁止预定，不考虑其他差标配置
     */
    @Column(name = "product_switch")
    private String productSwitch;

    /**
     * 协议价管控开关（E表示启用，N表示停用）
     */
    @Column(name = "protocol_price_switch")
    private String protocolPriceSwitch;
    /**
     * 协议价超标管控方式（禁止预订F、选择原因C、审批A）
     */
    @Column(name = "protocol_price_control_type")
    private String protocolPriceControlType;
}
